$(function () {
  const token = window.sessionStorage.getItem('token')
  const id = window.sessionStorage.getItem('id')
  
  // 1. 验证登录并渲染 header
  testLogin()
  async function testLogin() {
    // 1-1. 判断 token 和 id 是否存在
    if (!token || !id) return window.location.href = './login.html'

    // 1-2. 发送请求请求用户个人信息
    const res = await $.ajax({
      url: 'http://localhost:8080/users/info/' + id,
      headers: { authorization: token }
    })

    // 1-3. 有可能失败有可能成功
    if (res.code === 1) {
      return $('.nickname').text(res.info.nickname)
    }

    // 1-4. 用户未登录, 跳转至登录页
    window.location.href = './login.html'
  }

  // 2. 添加用户
  $('form').on('submit', async e => {
    e.preventDefault()
    // 获取表单参数进行校验
    // 用户名, 密码, 确认密码, 昵称
    const username = $('.username').val()
    const password = $('.password').val()
    const rPassword = $('.rPassword').val()
    const nickname = $('form .nickname').val()
    // 表单验证
    if (!username || !password || !rPassword || !nickname) {
      return $('.error').show().text('表单字段必填!')
    }
    if (password !== rPassword) {
      return $('.error').show().text('两次输入密码不一致!')
    }
    $('.error').hide().text('')
    const res = await $.ajax({
      url: 'http://localhost:8080/person/add/',
      method: 'POST',
      data: $('form').serialize(),
      headers: { authorization: token }
    })
    
    if (res.code === 0) return $('.error').show().text(res.message)
    if (res.code === 1) {
      alert('添加用户成功')
      $('form')[0].reset()
    }
  })

  // 3. 返回首页
  $('.back').on('click', () => window.location.href = './index.html')
})